feat: support appointments with an operation #2
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This pull request introduces support for including and hydrating
Appointment
resources withinOperation
entities in the codebase. It adds the necessary data model, updates the router and response handling to support the new relationship, and provides comprehensive test coverage to ensure correct deserialization and integration.The most important changes are:
Appointment Model and Relationship Integration:
Appointment
data class incom.ctrlhub.core.projects.appointments.response
, representing appointment details and supporting JSON:API serialization/deserialization.Operation
model to include anappointment
relationship, allowing operations to reference an associated appointment if present. [1] [2]Router and API Enhancements:
OperationsRouter
to support fetching and hydratingAppointment
resources as included relationships, and registeredAppointment
as a recognized resource type for deserialization. [1] [2]OperationIncludes
enum to support including appointments in API requests.Testing and CI Improvements:
OperationsRouterTest
to verify that operations with included appointments are correctly retrieved and hydrated, using a new example JSON fixture. [1] [2]